Vor kurzem bin ich auf die Messaging-Option von Congstar aufmerksam geworden – mit der Prepaid-Karte (die es übrigens auch von Ja!Mobil gibt) kann man einen Tarif buchen, welcher kostenloses „Internet“ mit 32kbit/s bietet. Wozu braucht man das? Für es ist die ideale Sim-Karte für IoT-Projekte. Konkret möchte ich den Windmesser unseres Surfvereins via GSM/GPRS ans Netz bringen – dafür reicht die angebotene Bandbreite völlig aus.
Allerdings gibt es eine kleine Hürde zu nehmen: Die Messaging-Option muss auf der Seite http://datapass.de monatlich neu gebucht werden. Um dies zu automatisieren, habe ich mir den Buchungsvorgang mal näher angeschaut.
Der Prozess ist an sich relativ einfach, allerdings werden Session-Cookies verwendet, um die einzelnen Schritte abzubilden. Nach ein wenig herumprobieren konnte ich den Bestellvorgang auf zwei HTTP-Requests reduzieren. Da auf der Gegenseite ein Java-Servlet-Container mit Standardeinstellungen zum Einsatz kommt, kann statt des Cookies auch ein URL-Parameter verwendet werden, was die ganze Sache deutlich vereinfacht:
Schritt 1: Produkt wählen und Session-ID generieren
Mit dem Aufruf der URL http://datapass.de/pass/select/GDPVFB06 wählt man das Produkt „Messaging Option“ und beginnt gleichzeitig eine neue Session. Der Aufruf liefert eine HTTP 302-Umleitung mit einem Location-Header zurück.
Location: http://datapass.de/pass/confirm;jsessionid=BBA73147BC888745CF74FAF633CAFEBABE
Aus diesem Header muss die Session-ID für den Bestellprozess entnommen und für den nächsten Request verwendet werden.
Schritt 2: Bestellung auslösen
Nun kann die URL http://datapass.de/pass/purchase;jsessionid=BBA73147BC888745CF74FAF633CAFEBABE aufgerufen werden. Diese löst direkt die Bestellung der Messaging-Option aus.
User-Agent beachten
Bei der Automatisierung des Bestellprozesses bekam ich jedoch eine Meldung, dass mein Browser nicht unterstützt wird. Der zusätzliche Header
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36
für beide Requests überzeugt die Gegenseite jedoch davon, es mit einem echten Browser zu tun zu haben.
Schon gebucht?
Um zu wissen, ob bereits eine Option gebucht ist, reicht es den 1. Request auszuwerten. In diesem Fall liefert der Location-Header nämlich
Location: http://datapass.de/home;jsessionid=BBA73147BC888745CF74FAF633CAFEBABE
Wie geht es weiter?
Ich werde die beiden Requests einschließlich der Auswertung des 1. Requests als Bestandteil meines Projektes aufnehmen und einmal alle 15 Minuten ausführen. Damit sollte es möglich sein, mit der Messaging-Option dauerhaft kostenlos Sensordaten ins Internet zu schicken.
Hallo,
ein toller Artikel.
Gibt es hier schon neue Ergebnisse?
Ich möchte einen ESP8266 auf diese Weise ans Netz bringen.
Gibt es Codebeispiele (oder den ganzen Code) für die Arduino IDE?
… und ist es möglich diese zu bekommen?
Danke!
Hallo Dirk,
da hier das Telekomnetz (GSM) zugunsten von LTE immer schlechter wird und oft nichtmal mehr die Einwahl klappt, habe ich es aufgegeben und eine O2-Karte (Reseller) gekauft.
Hi Dirk, gleiche Frage – hast Du schon was umgesetzt ?